2013-01-20 33 views
0

我使用ASP.NET,MVC和我自己的數據庫。 我試圖實現我自己的會員供應商,因爲我想使用我的數據庫表「用戶」。我的會員供應商 - 如何找到當前用戶

但現在我很困惑: 我有註冊,我有登錄頁面的作品。 但是,我登錄後,其他控制器和頁面可以知道當前用戶標識登錄的是什麼?

功能,我在我的會員提供者實現:

public class MyMembershipProvider : MembershipProvider 
    { 
    private ManagerdBEntities1 db = new ManagerdBEntities1(); 
     // 
     // Properties from web.config, default all to False 
     // 
     private string _ApplicationName; 

     private bool _EnablePasswordReset; 
     private bool _EnablePasswordRetrieval = false; 
     private bool _RequiresQuestionAndAnswer = false; 
     private bool _RequiresUniqueEmail = true; 
     private int _MaxInvalidPasswordAttempts; 
     private int _PasswordAttemptWindow; 
     private int _MinRequiredPasswordLength; 
     private int _MinRequiredNonalphanumericCharacters; 
     private string _PasswordStrengthRegularExpression; 
     private MembershipPasswordFormat _PasswordFormat = MembershipPasswordFormat.Hashed; 

     private string GetConfigValue(string configValue, string defaultValue) 
     public override void Initialize(string name, NameValueCollection config) 
     public override string ApplicationName 
     public override bool ChangePassword(string username, string oldPassword, string newPassword) 
     public override bool ChangePasswordQuestionAndAnswer(string username, 
                 string password, 
                 string newPasswordQuestion, 
                 string newPasswordAnswer) 
     public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) 

    public override MembershipUser GetUser(string username, bool userIsOnline) 
    public override string GetUserNameByEmail(string email) 
    public override string ResetPassword(string username, string answer) 
    public override bool EnablePasswordReset 
public override bool EnablePasswordRetrieval 
public override int MaxInvalidPasswordAttempts 
public override int MinRequiredNonAlphanumericCharacters 
public override int MinRequiredPasswordLength 
public override int PasswordAttemptWindow 
public override MembershipPasswordFormat PasswordFormat 
public override string PasswordStrengthRegularExpression 
public override bool RequiresQuestionAndAnswer 
public override bool RequiresUniqueEmail 
public override bool ValidateUser(string username, string password) 

我的用戶模型:

public partial class User 
    { 
      private ManagerdBEntities1 db = new ManagerdBEntities1(); 

     public MembershipUser CreateUser(string username, string password, string email) 
     public static void SendEmailThroughGmail(string messageBody, string emailTo) 
     public User FindUser(string username) 
     public string GetUserNameWithEmail(string email) 
     public MembershipUser GetUser(string username) 
     private static string CreateSalt() 
     public bool ValidateUser(string username, string password) 
       private static string CreatePasswordHash(string pwd, string salt) 

**

  • 這是用戶字段:

**

回答

0

您可以使用Membership.GetUser()獲取登錄的用戶

MSDN Documentation

+0

當前但我沒有實現它,我只有帶參數的getUser。我如何實現這個功能? –

+0

檢查'GetUser()'實現在這裏,http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/cbe82217ed89#src/WebMatrix.WebData/SimpleMembershipProvider.cs – DON