我試圖在ASP.NET中獲取詳細信息視圖來顯示登錄用戶的詳細信息。我已被告知使用方法:asp.net/sql user.identity.name
select * from STAFF where USERNAME = user.identity.name
我認爲這是太簡單了,是真實的,我是正確的,因爲它沒有顯示出數據,當我嘗試運行。任何幫助,請..
我試圖在ASP.NET中獲取詳細信息視圖來顯示登錄用戶的詳細信息。我已被告知使用方法:asp.net/sql user.identity.name
select * from STAFF where USERNAME = user.identity.name
我認爲這是太簡單了,是真實的,我是正確的,因爲它沒有顯示出數據,當我嘗試運行。任何幫助,請..
我剛剛試圖做同樣的事情。對於我想要做的事情來說,這太令人頭疼了,所以我最終從頭開始構建表單。如果你想使用明細查看您可以撥打
aspnet_Membership_GetUserByName或 aspnet_Membership_GetUserByEmail或 aspnet_Membership_GetUserByUserId
並填充一個DataTable或數據集的結果和DataBind已到您的DetailsView。但是,如果您可以避免使用DetailsView,我會推薦它,因爲您規避了會員提供商,而這完全違背了首次使用它的目的。
嘗試通過創建CustomMembershipProvider
來擴展SqlMembershipProvide
r並覆蓋並重載GetUser()
方法返回可輕鬆綁定到Details View的DataTable
。
這將是這個樣子>
using System.Web.Security;
using System.Data;
namespace yourNameSpace
{
public class CustomSqlMembershipProvider : SqlMembershipProvider
{
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
return base.GetUser(providerUserKey, userIsOnline);
}
public DataTable GetUser(string UserName)
{
MembershipUser user = base.GetUser(username, false);
//code to create a datatable and populate it with user properties.
DataTable dt = new DataTable();
//Add columns
DataColumn column = new DataColumn();
//add columns to table
return dt;
}
}
}
確保您引用您的新成員資格提供在你的web.config時,即可大功告成。
幫助這給你一些方向。它需要一些工作,但最終更容易維護,然後對繞過代碼的任何成員進行故障診斷。
您正在使用哪種類型的身份驗證?您是否使用.net會員供應商。它是否連接到Active Directory或它是否形成身份驗證?你在使用什麼類型的數據庫?找出最好的方法是查看數據庫並檢查aspnet_xxxx表是否存在。如果沒有,那麼我沒有太多的繼續。 – gsirianni
使用SQL數據庫時,存在asp.net_xxxx表並使用表單身份驗證。 – user1055487
我不認爲他們打算使用字符串'user.identity.name'。我認爲它們意味着在USERNAME等於已登錄用戶的'User.Identity.Name'屬性的值的情況下構造一條SQL語句。 – tvanfosson