Выполнение хранимой процедуры с информацией Microsoft Idendity в качестве параметров в ASP. NET MVC - PullRequest
0 голосов
/ 03 апреля 2020

Я довольно новичок в. NET MVC. Мне удалось успешно установить новое приложение ASP. NET MVC и подключить его к Azure Active Directory. Теперь я могу успешно войти с моей рабочей учетной записью. Это действие также автоматически создает UserProfileController и просмотр, а также DbContext, который я изменил на свою собственную базу данных Azure SQL. Моя база данных Azure SQL теперь имеет dbo.UserTokenCaches, в которой хранится история входа.

Теперь, когда я захожу и go в / UserProfile, я вижу все свои данные. Как отображаемое имя, имя и фамилия и т. Д. c. Это конечно взято из Azure нашей эры.

Требование, которое у меня есть, заключается в том, что при успешном входе в систему мне нужно запустить хранимую процедуру со свойством Mail и Displayname от Microsoft. Azure .ActiveDirectory.GraphClient в качестве входного параметра.

Я настроил следующий скрипт для запуска хранимой процедуры, и он работает

string cnnString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

SqlConnection cnn = new SqlConnection(cnnString);

SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "addUsers";

// add any parameters the stored procedure might require
cmd.Parameters.Add(new SqlParameter("@Email", "test"));
cmd.Parameters.Add(new SqlParameter("@DisplayName", "test"));

cnn.Open();
object o = cmd.ExecuteScalar();
cnn.Close();

Очевидно, мне нужно заменить входные параметры "test" соответствующими Microsoft. Azure Значения графа .ActiveDirectory.GraphClient для Email и DisplayName. Я вызываю эту хранимую процедуру в AccountController после блока if (Request.IsAuthenticated).

Представление UserProfile выглядит следующим образом и работает правильно.

@using Microsoft.Azure.ActiveDirectory.GraphClient
@model User

@{
    ViewBag.Title = "User Profile";
}
<h2>@ViewBag.Title.</h2>

<table class="table table-bordered table-striped">
    <tr>
        <td>Display Name</td>
        <td>@Model.DisplayName</td>
    </tr>
    <tr>
        <td>First Name</td>
        <td>@Model.GivenName</td>
    </tr>
    <tr>
        <td>Last Name</td>
        <td>@Model.Surname</td>
    </tr>
    <tr>
        <td>E-mail</td>
        <td>@Model.Mail</td>
    </tr>
</table>

Может ли кто-нибудь помочь мне получить правильные параметры для моей хранимой процедуры?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...