簡體   English   中英

如何在我開發的Web應用程序中實現Asp.net成員資格

[英]How to implement Asp.net membership in my developed web application

我正在開發Web應用程序。 我已經完成了 但是當我通過安全審核時,我知道應該使用asp.net成員身份進行登錄,更改密碼,創建用戶,重置密碼等。

所以我盯着使用asp.net成員資格。 我創建了一個登錄頁面,它工作正常。 我的App_Data文件夾中也有一個數據庫。

在此處輸入圖片說明

問題是我已經為我的應用程序建立了一個數據庫,其中有一個用戶表,該表具有比表aspnet_Users更多的字段。 參見下圖。

在此處輸入圖片說明

因此,建議我如何在Web應用程序中實現asp.net成員資格,因為我需要在用戶表中添加更多字段,

如何使用上圖中的上述字段將數據與字段一起插入數據,因為我沒有通過使用asp.net成員資格對任何代碼進行優化。 如果可以的話,我一定會做出相應的更改。

我的意思是如何在沒有任何代碼的情況下合並該數據庫並進行挖掘。

我還建議您使用ASP.Net Identity,因為它是處理安全性的框架。

但是,如果您要使用簡單成員資格,則以下代碼可幫助您“將字段添加”到用戶表。

首先,使用所有必需的屬性創建用戶模型,如下所示:

[Table("User")]
public class User
{
    public int UserId { get; set; }

    [Display(Name = "User name")]
    [Required(ErrorMessage = "Usernname is required.")]
    [StringLength(80, ErrorMessage = "Please enter a value no more than 80 characters.")]
    public string UserName { get; set; }

    [Display(Name = "First Name")]
    [Required(ErrorMessage = "First name is required.")]
    [StringLength(80, ErrorMessage = "Please enter a value no more than 80 characters.")]
    public string FirstName { get; set; }

    [Display(Name = "Last Name")]
    [Required(ErrorMessage = "Last name is required.")]
    [StringLength(80, ErrorMessage = "Please enter a value no more than 80 characters.")]
    public string LastName { get; set; }

    [Required]
    [Display(Name = "Email")]
    [DataType(DataType.EmailAddress)]
    [StringLength(254, ErrorMessage = "Please enter a value no more than 254 characters.")]
    public string Email { get; set; }

   //Add other properties... etc
}

接下來,編寫代碼以初始化數據庫。 您可能在InitializeSimpleMembershipAttribute.cs文件中的某個位置有此代碼。 或者,您可以從那里取出它,並放入您的Application Start方法。 這是您需要修改的部分:

WebSecurity.InitializeDatabaseConnection("YourDBConnectionName", "User", "UserId", "UserName", autoCreateTables: true);
//Modify the above properties if you change your user model to be a different table name 

請參閱對InitializeDatabaseConnection的參考。

現在,當您要創建用戶時,請調用以下方法:

WebSecurity.CreateUserAndAccount(user.UserName, user.Password, new { user.Email, user.FirstName, user.LastName });

//user is the User object that has all your data populated from some type of input

創建用戶帳戶的參考: CreateUserAndAccount

您嘗試實現的是使用aspnet_regsql.exe創建的舊式ASP.Net成員資格提供程序 不要使用它,因為很久以前已不推薦使用它。

目前,Microsoft提供3種類型的會員資格-

  1. ASP.NET通用提供程序
  2. 簡單會員資格提供者
  3. ASP.NET身份

由於您的應用是新的並且沒有現有用戶,因此您想使用-

ASP.NET身份2

問題是我已經為我的應用程序建立了一個數據庫,其中有一個用戶表,該表具有比表aspnet_Users更多的字段。

ASP.Net Identity允許您在“用戶”表中創建自定義字段。

僅供參考:確保您使用版本2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM