2012-07-09 51 views
0

我想測試我的asp.net mvc3定製會員供應商。我似乎無法能夠踏進任何代碼 - 所有我想現在要做的是驗證用戶登錄調試ASP.NET MVC3定製會員供應商

什麼我迄今所做的是:

實施在abstact的MembershipProvider類:

public class SSDSMembershipProvider : MembershipProvider 
{ 
     public override bool ValidateUser(string username, string password) 
     { 
      return true; 
     } 

修改web.config中使用我的新供應商:

<membership defaultProvider="SSDSMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="SSDSMembershipProvider" type="MvcApplication6.Infrastructure.SSDSMembershipProvider" connectionStringName="ApplicationServices" 
      enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
      maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
      applicationName="/" /> 
     </providers> 
    </membership> 

新增的授權將其歸因於約HomeController的:

[Authorize] 
    public ActionResult About() 
    { 
     return View(); 
    } 

授權屬性是否導致調用ValidateUser方法?如果我在ValidateUser上放置一個斷點,它不會進入那裏,並且瀏覽器直接進入登錄頁面。我在這裏採取了正確的方法嗎?

+2

'Authorize'只是將用戶重定向到登錄頁面,一旦用戶放入他/她的憑證並提交登錄表單,就會調用驗證用戶。 – 2012-07-09 08:29:14

+0

您是否設置了您的 ...,在? – tschmit007 2012-07-09 08:31:32

+0

@Furqan啊謝謝至少我現在知道CustomMembership提供程序已正確配置 - 但它仍然不會在我登錄後調用ValidateUser。我不打算使用表單身份驗證 - 我實際上需要使用來自處理用戶登錄的應用程序的http請求的一部分傳遞的用戶名和密碼。 – woggles 2012-07-09 08:43:29

回答

1

Authorize只是將用戶重定向到登錄頁面,一旦用戶放入他/她的憑證並提交登錄表單,就會調用驗證用戶。

2

您是否更改了AccountController中的代碼?

您必須將Method「LogOn」中的代碼從Mebership.ValidateUser更改爲SSDSMembershipProvider-Class的新實例,然後調用ValidateUser方法。

+0

nope我沒有改變控制器 - 我現在意識到,在登錄時調用了ValidateUser,隨後調用了FromsAuthentication.SetAuthCookie。我認爲每當[Authorize]屬性出現時都會調用ValidateUser。 – woggles 2012-07-09 09:21:47

+0

http://www.brianlegg.com/post/2011/05/09/Implementing-your-own-RoleProvider-and-MembershipProvider-in-MVC-3.aspx這會幫助你! :) – davee 2012-07-09 09:25:39

+0

很好的鏈接,謝謝! – woggles 2012-07-09 09:28:07