Я уже несколько часов бьюсь головой об этой проблеме, и для меня это не имеет смысла.
Я создал приложение asp.net mvc 3, я реализовал формыаутентификация.У меня есть собственный провайдер, в котором я реализовал метод GetUser(..)
и метод ValidateUser(...)
, а остальная часть реализации выдает не реализованное исключение
. Я могу предоставить свою регистрационную информацию для AccountController встраницу входа, и меня приветствует желаемое имя пользователя!Отлично, значит, логин работает.
Теперь у меня есть 3 действия на моем FooController
- Индекс
- FirstAction
- SecondAction
Конкретные реализации выглядят следующим образом
[HttpPost]
public JsonResult FirstAction(int param1, string param2, string param3)
{
var userID = (int)Membership.GetUser().ProviderUserKey;
...
}
[HttpPost]
public JsonResult SecondAction(int param1, int param2, string param3)
{
var userID = (int)Membership.GetUser().ProviderUserKey;
...
}
Как вы уже догадались, я вызываю FirstAction и SecondAction из моего Index
View с некоторыми функциями jQuery ajax.
Следующая строка выдает исключение нулевой ссылки:
var userID = (int)Membership.GetUser().ProviderUserKey;
Странно то, что только во SecondAction выбрасывается нулевая ссылка, вызов FirstAction работает нормально.
Я попытался разделить его следующим образом:
var user = Membership.GetUser();
var providerKey = user.ProviderUserKey;
var userID = (int)providerKey.
И все же он не может быть приведен.
Объект MembershipUser, который возвращает Membership.GetUser (..), имеет целое число, сохраненное в providerUserKey иНЕ является Руководством, как это имеет обычная реализация членства.
Любая помощь в любой форме или форме очень ценится.