#asp.net
#asp.net
Вопрос:
Я использую Activedirectory в качестве поставщика членства. Я хочу сохранить текущего зарегистрированного пользователя в сеансе.
protected void user_login_LoggedIn(object sender, EventArgs e)
{
MembershipUser user = Membership.GetUser();
}
приведенный выше код выдает ошибку, приведенную ниже
The parameter 'username' must not be empty.
Parameter name: username
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Сведения об исключении:
System.ArgumentException: The parameter 'username' must not be empty.
Parameter name: username
Ошибка источника:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Трассировка стека:
[ArgumentException: The parameter 'username' must not be empty.
Parameter name: username]
System.Web.Util.SecUtility.CheckParameter(Stringamp; param, Boolean checkForNull, Boolean checkIfEmpty, Boolean checkForCommas, Int32 maxSize, String paramName) 1976411
System.Web.Security.ActiveDirectoryMembershipProvider.CheckUserName(Stringamp; username, Int32 maxSize, String paramName) 30
System.Web.Security.ActiveDirectoryMembershipProvider.GetUser(String username, Boolean userIsOnline) 86
System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline) 82
System.Web.Security.Membership.GetUser() 19
darts.login.user_login_LoggedIn(Object sender, EventArgs e) in E:ProjectsDARTSsourcedartsdartslogin.aspx.cs:24
System.Web.UI.WebControls.Login.OnLoggedIn(EventArgs e) 111
System.Web.UI.WebControls.Login.AttemptLogin() 179
System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) 101
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) 37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) 118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) 166
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 1565
Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.4211; ASP
Ответ №1:
Редактировать:
На основе использования этого из ASP.NET чтобы получить регистрационную информацию о текущем аутентифицированном пользователе, я вижу пару способов, которыми это могло бы сработать. Во-первых, если вы используете проверку подлинности Forms у поставщика членства в Active Directory, вы могли бы указать имя пользователя там. Затем вы просто вводите имя пользователя внутри GetUser()
метода следующим образом: GetUser(yourUser)
и вы должны получить необходимую информацию.
Если это не вариант, я полагаю, что информация об имени пользователя хранится под вашим контролем входа (в вашем случае, я полагаю, что имя user_login
, если вы действительно используете элемент управления входом). Вы бы просто сказали user_login.username
и поместили это в GetUser()
метод.
Наконец, вы могли бы попробовать старый запасной вариант HttpContext.Current.User.Identity.Name
и поместить его в свой GetUser()
метод.
Комментарии:
1. Привет, Биггс, спасибо за ответ. Это дает пользователям Windows, вошедшим в систему в данный момент. Я использую Active Directory в качестве поставщика членства. Таким образом, пользователь, который заходит на веб-сайт, может быть любым из объявления. Я хочу получить это имя пользователя, которое входит в систему
2. @Vivek Chandraprakash — Аааа, понятно. Позвольте мне разобраться в этом и посмотреть, что я могу увидеть.
3. @Vivek Chandraprakash — Я обновил свой пост, чтобы отразить мое новое понимание вашей проблемы. Поскольку старая информация не помогла, я решил удалить ее.
4. Спасибо, Биггс. Не повезло с методом getuser. Я использовал user_login.username. ты тот самый