Приложение разрывается, когда View Redirect для входа в Azure
У меня есть приложение MVC, у которого есть домашнее представление, в домашнем представлении у меня есть кнопка, чтобы увидеть отчет, который загружает два частичных представления, одно - получить вызов ajax и загрузить внешние данные API из таблицы, другое - частичное представление. для нагрузки powerbi.
пока я нажимаю на кнопку, я загружаю различные API и получаю данные в 1 частичном представлении и при загрузке второго частичного представления для PowerBi, которое перенаправляет на Azure Login и разрывает приложение.
public ActionResult Index(){
var @params = new NameValueCollection
{
{"response_type", "code"},
{"client_id", Properties.Settings.Default.ClientID},
{"resource", "https://analysis.windows.net/powerbi/api"},
{"redirect_uri", "http://localhost:13526/Redirect"}
};
var queryString = HttpUtility.ParseQueryString(string.Empty);
queryString.Add(@params);
string authorityUri = "https://login.windows.net/common/oauth2/authorize/";
var authUri = String.Format("{0}?{1}", authorityUri, queryString);
Response.Redirect(authUri);
}
После проверки подлинности Azure выдает токен и загружает powerbi.
EmbedPowerBi
public async Task<ActionResult> EmbedPowerBi ()
{
AuthenticationResult authResult;
authResult = (AuthenticationResult)Session["authResult"];
var token = authResult.AccessToken;
ViewBag.Token = token;
var tokenCredentials = new TokenCredentials(token, "Bearer");
// Create a Power BI Client object. It will be used to call Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
// Get a list of dashboards.
var dashboards = await client.Dashboards.GetDashboardsInGroupAsync(GroupId);
// Get the first report in the group.
var dashboard = dashboards.Value.FirstOrDefault();
//var dashboard = dashboards.Value.Where(w => w.Id == "DashboardId");
// Generate Embed Token.
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
var tokenResponse = await client.Dashboards.GenerateTokenInGroupAsync(GroupId, dashboard.Id, generateTokenRequestParameters);
if (tokenResponse == null)
{
return View(new EmbedConfig()
{
ErrorMessage = "Failed to generate embed token."
});
}
// Generate Embed Configuration.
var embedConfig = new EmbedConfig()
{
EmbedToken = tokenResponse,
EmbedUrl = dashboard.EmbedUrl,
Id = dashboard.Id
};
return View(embedConfig);
}
}
Проблема, с которой я столкнулся из-за перенаправления, другое частичное представление влияет на текущее приложение.
В домашнем виде я загружаю частичный вид.
@ Html.Partial ("loadProduct"); @ Html.Partial ("_ EmbedPowerBi");
1 ответ
Вы пытались ссылаться на существующие "Примеры разработчика"? https://github.com/Microsoft/PowerBI-Developer-Samples
Кажется, проблема перенаправления вызывает привязку ViewModel к вам EmbedConfig