我是Azure新手。我正在从Web应用程序调用Azure翻译服务p。我想使用托管身份,到目前为止我尝试了以下方法。**您认为这是正确的方法吗?或者我还需要在Web应用程序身份中执行任何操作吗?**x1c 0d1x
1.在翻译服务中启用托管身份
1.在Azure中授予对翻译服务的访问权限翻译=>访问控制(IAM)=>添加角色分配=>创建托管身份的贡献者。
- Web应用程序中的代码集成
//初始化Azure翻译客户端
var credential = new ChainedTokenCredential(new ManagedIdentityCredential(),new AzureCliCredential()); var translatorClient = new TranslationClient(new Uri(endpoint),credential);
1条答案
按热度按时间64jmpszr1#
我同意Nicolas R的观点。每当你想将Web应用连接到任何资源时,最好将Web应用管理的身份连接到翻译服务,然后通过Azure Web应用中间件或代码访问翻译API。
请参考此MS Q & A answer流程以在Angular应用程序中使用认知服务。使用相同的步骤为您的C# .net Web应用程序,由Sedat SALMAN撰写。
为您的Web应用启用托管身份,如下所示:-
x1c 0d1x的数据
授予此 * 托管身份访问翻译服务的权限,如下所示:-
的
现在将此C# Translator服务代码集成到您的Web应用中间件中,以返回翻译API。您也可以从Web应用调用此Rest API。参考如下:-
添加一个类TranslationService.cs,并添加以下代码,其中包含正确的API键、位置和翻译服务的端点,如下所示:-
不带托管标识的TranslationService.cs
的
字符串
具有托管身份的TranslationService.cs您可以根据您的用例使用任何一个代码:-
型
在Asp.net Web应用程序的页面中的共享文件夹中创建一个Razor页面:-
翻译.cshtml:-
型
翻译.cshtml.cs:-
型
更新Program.cs如下:-
型
对托管Identity Web应用程序应用相同的逻辑。
输出:-
的