登录页面上的OnLoggedIn事件 ASP.NET

 2023-02-17    393  

问题描述

我想根据他们在ASP.NET会员提供者中的角色重定向人员.我在登录页面上的”onloggedin”事件中有一些代码.这是我到目前为止尝试的,没有什么不起作用:

下面的代码在.isauthenticated步骤上返回false,它表示用户未经身份验证.在登录页面上的阶段,用户被认证,我认为”onloggedin”事件是正确的地方.

登录页面上的OnLoggedIn事件 ASP.NET

if (HttpContext.Current.User != null)
{
    if (HttpContext.Current.User.Identity.IsAuthenticated)
    {
        if (HttpContext.Current.User.Identity is FormsIdentity)
        {
        }
    }
}

第二件我尝试的是要获得用户的所有角色,但它没有返回任何内容,返回空的字符串数组,我检查了将角色分配给该特定用户的数据库.这是我尝试的方式:

string[] userRole = Roles.GetRolesForUser(LoginUser.UserName);

所以,我的问题是我如何在登录页面上获取角色,我是否需要在其他一些事件或某些其他方式检查该角色.
谢谢你提前帮助,laziale

推荐答案

第一个情况是不起作用的,因为它返回它进入时请求的值.使用FormsAuthentication登录基本上只是在响应中设置Cookie,以便下一个请求获取合适的用户.

第二个情况应该工作,假设LoginUser是登录控件的名称.

其他推荐答案

如果您有一些预定义的规则集(Superadmin,Admin,User,….)而不是

可以使用开关案例

并根据身份验证级别

您可以使用相应的URL

将用户分类/重定向

其他推荐答案

greg完全正确.所以问题是没有返回角色的原因?可能有几种原因,具体取决于您在Web.config中的RolesProvider设置上创建角色的原因.

因此,请确保您的角色提供程序指向同一数据库,您可以看到角色.
另外检查您是否不使用不同的角色提供程序来创建角色,例如通过不同的角色访问它.如果您在Web.config中拥有多个角色提供程序,则会发生这种情况.

还检查它不是 applicationname问题.

如果这没有帮助发布Web.config角色设置以及信息如何创建角色.

以上所述是小编给大家介绍的登录页面上的OnLoggedIn事件 ASP.NET,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34105.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。