Передача аутентифицированного пользователя из sharepoint в приложение asp mvc - PullRequest
0 голосов
/ 30 января 2012

Я сделал приложение asp.net mvc, которое имеет аутентификацию с помощью пользовательских форм.Кроме того, он должен аутентифицировать пользователя из sharepoint (другими словами, мне нужно передать пользователя из sharepoint в приложение asp mvc).SP и asp mvc app находятся в одном домене, а SP использует AD для аутентификации пользователя.Я искал Google / так и до сих пор у меня нет хорошего решения.

Примечание: мне нужен безопасный способ передачи пользователя из sp в приложение asp mvc ... Я видел несколько примеров, которые передают мысли пользователяПараметр URL, и я думаю, что это небезопасно.

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Почему бы не использовать параметр URL?

public class SecureToken {
    public Int32 UserId {get;set;}
    public DateTime DateCreated {get;set;}
    public DateTime ValidTill {get;set;}

    public SecureToken (Int32 userId) {
        this.UserId = userId;
        this.DateCreated = DateTime.Now;
        this.ValidTill = this.DateCreated.AddMinutes(0.5);
    }
    public String ToEncryptedToken() {
        // Do serialization,
        // Then encrypt with, for example TrippleDES
        // Escape for url
        // return the string arguement for url
    }

    public static SecureToken Decrypt(String input) {
        // If the DateCreated == ValidTill - 30 seconds
        // If validTill > Now
        // If decryptable
        // Return deserialized token
        // else throw Authentication error.
    }
}

Дело в том, что токен, находящийся в URL, жизнеспособен только в течение 30 секунд. В качестве дополнительного параметра вы можете использовать HMAC-SHA 256 во время сериализации и проверить, действительно ли это ваш токен.

0 голосов
/ 30 января 2012

Вы можете настроить SP для провайдера аутентификации пользовательских форм, который, в свою очередь, выполняет валидацию для домена - тогда вы делитесь токенами авторизации форм между приложениями, что довольно просто:

http://msdn.microsoft.com/en-us/library/ie/eb0zx8fc.aspx

...