繁体   English   中英

Xamarin Android:为什么对天蓝色活动目录进行身份验证不起作用

Xamarin Android: Why authentication to azure active diretory is not working

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

大家好,我叫谷口

我试图通过身份验证来激活活动目录,但是代码sintaxe显示错误。

认证界面:

public interface IAuthenticator
{
    Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri);
}

验证者类:

[assembly: Xamarin.Android.Dependency(typeof(App11.Authenticator))]
public class Authenticator : IAuthenticator
{
    public async Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri)
    {
        var authContext = new AuthenticationContext(authority);
        if (authContext.TokenCache.ReadItems().Count() > 0)
            authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
        var uri = new Uri(returnUri);

        var platformParams = new PlatformParameters((Activity)Android.Context);
        var authResult = await authContext.AcquireTokenAsync(resource, clientId, uri, platformParams);
        return authResult;
    }
}

我在哪里调用身份验证:

public class MainActivity : AppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.activity_main);
        Authenticate();
    }

    public async void Authenticate()
    {
        string Nome_Usuario = "taniguchi.sales@ax4b.com";
        string clientId = "2b121ed5-9fe6-4ddf-bdea-9bbe8cd37bd0";
        string authority = "https://login.microsoftonline.com/ax4b.com";
        string returnUri = "https://ax4bdev.crm2.dynamics.com";
        string graphResourceUri = "https://ax4bdev.crm2.dynamics.com";
        var auth = Xamarin.Android.DependencyService.Get<IAuthenticator>();
        var data = await auth.Authenticate(authority, graphResourceUri, clientId, returnUri);
    }

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs(requestCode, resultCode, data);
    }

线:

[assembly: Xamarin.Android.Dependency(typeof(App11.Authenticator))]

显示错误:错误CS0234类型或名称空间名称'DependencyAttribute'在名称空间'Xamarin.Android'中不存在(您是否缺少程序集引用?)

1 个回复

[程序集:Xamarin.Android.Dependency(typeof(App11.Authenticator))]

DependencyService通常在Xamarin.Forms中使用 ,但是现在您是Xamarin.Android项目。您不需要IAuthenticatorAuthenticator类,可以直接在活动中编写该方法,例如(我不确定您的Authenticate方法是否有效,仅适用于依赖性错误):

private  async void Authenticate()
    {
        string Nome_Usuario = "taniguchi.sales@ax4b.com";
        string clientId = "2b121ed5-9fe6-4ddf-bdea-9bbe8cd37bd0";
        string authority = "https://login.microsoftonline.com/ax4b.com";
        string returnUri = "https://ax4bdev.crm2.dynamics.com";
        string graphResourceUri = "https://ax4bdev.crm2.dynamics.com";
        var data = await Authenticate(authority, graphResourceUri, clientId, returnUri);

    }

    private async Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri)
    {
        var authContext = new AuthenticationContext(authority);
        if (authContext.TokenCache.ReadItems().Count() > 0)
            authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
        var uri = new Uri(returnUri);

        var platformParams = new PlatformParameters(this);
        var authResult = await authContext.AcquireTokenAsync(resource, clientId, uri, platformParams);
        return authResult;
    }
1 Xamarin Azure活动目录重定向URI错误

我正在开发需要通过Azure AD对用户进行身份验证的Xamarin应用,为此我正在使用Microsoft.Identity.Client块。 该应用程序可以转到microsoft SSO页面,但是在单击登录按钮后,该页面将返回错误: AADSTS50011:在请求中指定的答复URL与为该 ...

3 Xamarin使用Azure Active Directory进行Android Azure移动应用程序.NET身份验证

我正在尝试将身份验证用于Xamarin现场工程师移动应用程序。 我让Xamarin在没有身份验证的情况下使用我的Azure SQL数据库。 虽然我已经正确地按照自定义Azure Active Directory的设置并且可以通过fiddler访问它,但是我使用的代码没有完成对登录页面的访问, ...

5 Azure Active Directory身份验证和Xamarin应用程序

我是Xamarin和Azure AD的新手。 目前我正在开发一个Xamarin跨平台移动应用程序,它使用Azure Active目录进行用户身份验证。 所以问题是当我打开我的应用程序而不是向我显示应用程序登录屏幕时,它会将我重定向到Microsoft登录屏幕。 我希望我的用户看到我 ...

6 Xamarin Forms iOS应用程序不适用于Azure移动服务Active Directory身份验证

我创建了一个Xamarin Forms应用程序,该应用程序使用Azure Active Directory验证到Azure移动服务。 这可以在我的WinPhone应用程序中使用,但不能在iOS设备上使用。 它可以在iOS模拟器中运行,但不能在实际设备上运行。 我将其范围缩小到导致应用程序在 ...

9 Windows Azure Active Directory身份验证在Android中?

我一直在网上查看,还没有找到明确的答案。 我想做的是针对Android应用中的Windows Azure动态目录租户进行身份验证。 身份验证协议不是问题,但是我认为最好使用saml 2.0。 *我已经能够在.net中非常简单地做到这一点。 因此,如果以上操作是不可能的,我想知道是否使 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM