2013-04-06 2 views
0

Я использую DotNetOpenAuth 4.0.20926 и пытаюсь реализовать сервер аутентификации на основе OAuth2 с поставщиком Db Nonce.DotNetOpenAuth: хотите получить доступ к имени пользователя при хранении Nonce

Для некоторых целей я хочу получить доступ к имени пользователя в функции StoreNonce от NonceStore при обработке запроса GetToken. Я не получаю способ получить имя пользователя в этом вызове.

Как я могу решить эту проблему?


Эй, спасибо за ваш ответ и DotNetOpenAuth.

Мой GetToken Метод как этот

public ActionResult Token() 
    { 
    string userName = ""; 
    //Want to fetch username here 
    //Using username here 
    var result = this.authorizationServer.HandleTokenRequest(this.Request); 
    return result.AsActionResult(); 
    }   

И я хочу, чтобы принести имя пользователя перед вызовом HandleTokenRequest.
Есть ли какой-либо метод Parser или Helper для извлечения имени пользователя из данных запроса/значения кода.

+0

Точка, в которой вы хотите использовать имя пользователя, не представляется возможным. Не существует * пользователя *, связанного с HTTP-запросом, так как запрос конечной точки Token поступает из клиентского приложения. Некоторые разрешения на авторизацию вступают, и внутри, что * может * быть авторизационным именем пользователя, но вам нужно будет расшифровать разрешение на авторизацию, чтобы открыть его (и сначала проверить его). Прежде чем я смогу сделать рекомендацию, я должен знать, для чего вы ее используете. –

ответ

1

Как вы заметили, интерфейс не передает имя пользователя в метод StoreNonce. Таким образом, единственный способ, которым вы, возможно, сможете получить имя пользователя, - это узнать, что это такое, прежде чем вы создадите экземпляр своего INonceStore и сначала передадите его в этот магазин nonce, чтобы позже, когда вызывается StoreNonce, он уже знает имя пользователя.

Это, я считаю, любой дизайн, где хранение и проверка nonce требует, чтобы имя пользователя нуждалось в некотором переосмыслении. Мало того, что это смешение проблем, которые в противном случае должны оставаться отдельными, вы можете ограничивать себя продвижением или даже вводить дыры в безопасности.

+0

Я обновил вопрос, пожалуйста, помогите ... –