我有一个控制台应用程序,用户当前必须点击“登录”#39;获取Microsoft Graph应用程序的令牌。
是否可以将其设为'自动登录?
我可以看到AcquireTokenAsync方法有一些重载:
public static string GetAccessToken()
{
// Create the authentication context (ADAL)
var authenticationContext = new AuthenticationContext(Authority);
var authenticationResult = authenticationContext.AcquireTokenAsync(GraphResource,
ClientId, RedirectUri, new PlatformParameters(PromptBehavior.Auto, true));
var accessToken = authenticationResult.Result.AccessToken;
return accessToken;
}
我无法为本机应用创建客户端密钥,因此无法使用这些备用重载。
我可以自行登录应用程序吗?
答案 0 :(得分:1)
如果你看一下https://media.giphy.com/media/fjxPFluObAs5P3cXms/giphy.gif,即使是微软也承认他们的决定有时很糟糕:
输入应用程序的友好名称,例如“TodoListDaemon”,并选择“Web应用程序和/或Web API”作为应用程序类型。由于此应用程序是守护程序而非Web应用程序,因此它没有登录URL,因此对于此字段,只需输入“the official samples for the Azure SDK”。
因此,作为文档的快捷方式,请使用要求private async Task OnGoingToTheParkClicked(object sender, EventArgs e)
{
bool success = false;
var already = await viewModel.AlreadyHavePendingRequestAsync());
Console.WriteLine("TEST");
throw new Exception();
}
的重载:
img_path = eachrow[11]
try:
print("Image url ::" +baseURL+img_path)
opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(baseURL+img_path, image_file_path + img_path)
except Exception as e:
print(e)
img_path = "No image"
答案 1 :(得分:0)
另一种方法是使用从usercredential继承的userpasswordcredential对象,并使用acquiretoken方法获取令牌,这样就不需要签名验证了。显然,这不像其他答案中描述的守护进程方法那样安全。