2016 - 2024

感恩一路有你

CORE Identity简化模式服务端配置帮助类

浏览量:3542 时间:2024-03-29 16:05:13 作者:采采

Core Identity简化(隐形)模式服务端在配置时,可以通过新增Identity配置帮助类来更加方便地管理相关对象和资源。以下是针对服务端的配置帮助类的具体实现。

新增Identity配置帮助类

在服务端中,我们可以新增一个名为IdentityConfig的配置帮助类,用于管理可访问的对象、客户端配置以及用户配置等信息。这样可以更好地组织和管理相关资源,提高代码的可读性和维护性。

```csharp

using System;

using ;

using ;

using ;

using ;

using ;

using ;

using IdentityServer4.Test;

namespace IdentityServerPeizhi

{

public class IdentityConfig

{

// 可访问的对象

public static IEnumerable GetResource()

{

return new List

{

new ApiResource("apiServer", "apiServer")

};

}

// 客户端配置

public static IEnumerable GetClients()

{

return new List

{

new Client

{

ClientId"clientId",

AllowedGrantTypes ,

ClientSecrets { new Secret("secret1122".Sha512()) },

AllowedScopes{ "apiServer" }

}

};

}

// 添加用户配置

public static List GetTestUsers()

{

return new List

{

new TestUser

{

SubjectId "111",

Username "test111",

Password "123456"

}

};

}

// 身份资源配置

public static IEnumerable GetIndentityReources()

{

return new List

{

new (),

new (),

new ()

};

}

}

}

```

Startup.cs配置服务

在Startup.cs文件中,通过ConfigureServices方法配置Identity Server服务,包括添加IdentityServer、数据库上下文、用户存储等内容,以确保服务正常运行。

```csharp

public void ConfigureServices(IServiceCollection services)

{

()

.AddDeveloperSigningCredential()

.AddInMemoryClients(())

.AddInMemoryApiResources(())

.AddInMemoryIdentityResources(())

.AddTestUsers(());

(options >

(("DefaultConnection")));

()

.AddEntityFrameworkStores()

.AddDefaultTokenProviders();

();

();

}

```

配置Startup.cs中的Configure方法

在Startup.cs文件的Configure方法中,配置应用程序的中间件,包括开发环境判断、异常处理、静态文件服务、Identity Server等内容,并设置路由规则以确保应用程序正常运行。

```csharp

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

if (())

{

();

();

();

}

else

{

("/Home/Error");

}

();

();

(routes >

{

(

name: "default",

template: "{controllerHome}/{actionIndex}/{id?}");

});

}

```

登录设置,过期时间等

在具体的登录控制器中,可以配置登录的验证逻辑,包括用户名密码验证、用户信息获取等操作,并设置过期时间等相关属性,以确保用户登录的安全性和有效性。

```csharp

public async Task Login(LoginViewModel model, string returnUrl null)

{

if (_("test111", "123456"))

{

var user _("test111");

var props new AuthenticationProperties

{

IsPersistent true,

ExpiresUtc ((30))

};

await (HttpContext, , , props);

}

return View(model);

}

```

通过以上的配置和实现,我们可以更好地管理Identity Server的相关资源和客户端配置,确保服务端的安全性和稳定性。同时,在登录设置中,可以控制登录的有效期和安全性,提升用户体验和系统安全性。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。