request.IsAuthenticated不使用自定义成员资格提供程序

时间:2015-10-13 05:33:47

标签: c# asp.net asp.net-mvc-4 membership

我的登录名是..at controller

 MemberShipProvider objMProvider = new MemberShipProvider();
        var abc =RedirectToAction("Index", "Home");
        if (ModelState.IsValid)
        {
            var checkVal = objMProvider.ValidateUser(m.username, m.password);
            if (checkVal == true)
            {
                Session["User"] = m.username;
                TempData["userName"] = m.username;
                //IdentityHelper.RedirectToReturnUrl("~/User_Dashboard.aspx");
               abc=RedirectToAction("Dashboard","User");
            }
            else if (checkVal == false)
            {
                abc = RedirectToAction("Index", "Home");
                return abc;
            }
        }

我的webconfig会员资格设置...

 <system.web>
<membership defaultProvider="MemberShipProvider">
  <providers>
    <clear/>
    <add name="MemberShipProvider" type="FndooMvc.Models.Common.MemberShipProvider"
         connectionStringName="mycon"
         applicationName="/" />
  </providers>
</membership>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />

<system.webServer>
<modules>
  <remove name="FormsAuthentication" />
</modules>

我的自定义成员资格提供程序logincheck代码是 public override bool ValidateUser(string username, string password) { return objLogin.IsValid(username,password) == true ? true : false; } 我使用平面登录代码然后我决定根据需求使用自定义成员资格。帮助我使用此身份和原则功能与此自定义成员身份 现在我想知道为什么我的要求.IsAuthenicated

2 个答案:

答案 0 :(得分:1)

查看this

ASP.NET Identity系统旨在取代以前的ASP.NET成员资格和简单成员资格系统。它包括配置文件支持,OAuth集成,与OWIN一起使用,并包含在Visual Studio 2013附带的ASP.NET模板中。

如果你想在identity and principle feature

中找到一篇好文章

答案 1 :(得分:0)

我在身份验证请求事件中的全局配置中需要此代码块。

 HttpCookie authCookie =Context.Request.Cookies[FormsAuthentication.FormsCookieName];
        if (authCookie != null)
        {
            FormsAuthenticationTicket authTicket =
                                        FormsAuthentication.Decrypt(authCookie.Value);
            string[] roles = authTicket.UserData.Split(new Char[] { ',' });
            GenericPrincipal userPrincipal =
                             new GenericPrincipal(new GenericIdentity(authTicket.Name),
                                                  roles);
            Context.User = userPrincipal;
        }

现在request.isAuthenticated工作。

我怎么会改变这个提供者并按照Hboubati的建议使用。