gpt4 book ai didi

c# - MVC 身份验证 - 最简单的方法

转载 作者:行者123 更新时间:2023-11-30 21:55:40 24 4
gpt4 key购买 nike

我查看了 ASP.NET Identity,它看起来非常复杂且难以理解。基本上我想知道的是授权用户登录的最简单方法,这样 [Authorize] 数据注释将允许他们通过。

最佳答案

请按照以下步骤操作:

安装以下 NuGet 包

  • Microsoft.Owin
  • Microsoft.Owin.Host.SystemWeb
  • Microsoft.Owin.Security
  • Microsoft.Owin.Security.Cookies

在 App_Start 文件夹中,添加如下所示的 AuthConfig:

public static class AuthConfig
{
public const string DefaultAuthType = "DefaultAppCookie"; //example
public const string LoginPath = "System/SignIn"; //example

public static void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthType,
LoginPath = new PathString(LoginPath)
});
}
}

在项目的根路径下,添加一个类似这样的Startup.cs

[assembly: OwinStartup(typeof(YourPorject.Startup))]
namespace YourPorject
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
AuthConfig.ConfigureAuth(app);
}
}

}

验证用户(通常在登录操作中):

//user = the user that is loggin on, retrieved from database 
List<Claim> claims = new List<Claim>
{
new Claim(ClaimTypes.Name, user.Name),
new Claim(ClaimTypes.Email, user.Email),
//some other claims
};

ClaimsIdentity identity = new ClaimsIdentity(claims, AuthConfig.DefaultAuthType);
IAuthenticationManager authManager = Request.GetOwinContext().Authentication;
authManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);

您需要添加 ClaimTypes.Role 来授权特定角色。

关于c# - MVC 身份验证 - 最简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com