gpt4 book ai didi

c# - 授权属性在 MVC 4 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:18 24 4
gpt4 key购买 nike

在我的应用程序中我正在使用

 System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0

作为我的成员(member)提供者,这里是我的账户控制代码

[HttpPost]
public ActionResult Login(string username,string password)
{
var result = Membership.ValidateUser(username, password);
if(result)
{

var user = Membership.GetUser(username);
var roles = Roles.GetRolesForUser(username);
var isDistributor = roles.Any(x => x.ToUpper() == "DISTRIBUTOR");
if (isDistributor) return RedirectToAction("ShowCurrentDistributor", "Distributor");
}
else
{
TempData["error"] = "Invalid login attempt";
}
return View();
}

还有我的 ShowCurrentDistributor 操作代码:

 [HttpGet]
[Authorize(Roles = "Distributor")]
public ActionResult ShowCurrentDistributor()
{

var distributor = _distributer.GetDistributerbyEmail(User.Identity.Name);
return View(distributor);
}

但是当我调用 ShowCurrentDistributor 方法时,授权不起作用。它总是返回到我的登录表单,即使我通过了有效角色(分销商)的身份验证。我的代码有什么问题

最佳答案

验证成功后需要添加以下行:

FormsAuthentication.SetAuthCookie(username,true);

(原发布者在问题评论中回答)

关于c# - 授权属性在 MVC 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214003/

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