我已经添加了我为此所需的一切,但是仍然无法正常工作 (首次使用身份验证)
这是我的代码:
控制器
[Authorize(Roles = "Admin")]
public class AdminController : Controller
{
//Codes in the controller
}
MyRoleProvider
public override string[] GetRolesForUser(string username)
{
var result=adminService.LoginData();//which has Role,and other datas
string a=result.Where(x=>x.UserName==username).FirstOrDefault().Role;
string[] output={a};
return output;
}
Web.Config
<roleManager enabled="true" defaultProvider="MyProvider">
<providers>
<clear/>
<add name="MyProvider" type="bombays.MyRoleProvider"/>
</providers>
</roleManager>
这样登录
public ActionResult Login(Login log)
{
var p = adminService.adminLogin(log);
if (p.UserName == log.UserName && p.Password == log.Password)
{
Session["adminusername"] = p.UserName;
Session["adminname"]=p.name;
}
return View("AdminHome");
}
我检查了很多例子,但没有什么能救我。 现在发生了什么事;任何用户都可以查看该页面。它甚至没有调用 GetRolesForUser 函数(尝试过断点)