小编Eug*_*ace的帖子

为什么 startActivityForResult 不使用回调或更高级别的方式返回结果?

我是 Android 新手,所以我可能会遗漏一些东西。我正在编写一个“登录”活动。Activity 返回安全令牌供应用程序稍后使用。

一切正常。我不太喜欢的是用于返回结果的协议:

本质上,我的登录活动是这样使用的:

...
        login = (Button) findViewById(R.id.login);
        login.setOnClickListener(new View.OnClickListener()
        {
        public void onClick(View v)
        {
            Intent authActivity = new Intent(context,
                                             AuthenticationActivity.class);

            authActivity.putExtra("clientId","MY CLIENT ID");

            startActivityForResult(authActivity, AuthenticationActivity.AUTH_REQUEST_COMPLETE);
        }
    });
Run Code Online (Sandbox Code Playgroud)

然后,我通过onActivityResult方法检索结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent authActivityResult) {
    super.onActivityResult(requestCode, resultCode, authActivityResult);

    switch(requestCode)
    {
        case AuthenticationActivity.AUTH_REQUEST_COMPLETE:
            if(resultCode==RESULT_OK)
            {
               access_token =authActivityResult.getStringExtra(AuthenticationActivity.ACCESS_TOKEN)); ...
Run Code Online (Sandbox Code Playgroud)

这是应该的方式吗?或者,还有更好的方法?例如,我想返回一个类型而不是使用属性包。这有很多优点(例如更容易重构、编译时检查等)

粗略地说,我想看到类似(伪代码)的东西:

 startActivityForResult<MyResult>(authActivity, new OnResultHandler() { 
      @Override
      void HandleResult( MyResult r )
      {
         ....
      }
  });
Run Code Online (Sandbox Code Playgroud)

很想听听 Android 专家的看法!

android android-activity

5
推荐指数
1
解决办法
3603
查看次数

运行"身份和访问"向导后,VS 2012的MVC4应用程序中的Principal是RolePrincipal而不是ClaimsPrincipal

由Visual Studio 2012中的默认(Internet)模板创建的MVC 4应用程序在运行"身份和访问..."向导后返回RolePrincipal.

该向导与STS(实际或"开发"时间STS)建立信任关系.

如果检查,User对象将是RolePrincipal类型.这样做的结果是User.IsInRole针对本地角色数据库而不是声明集进行解析.

在此输入图像描述

我期待一个ClaimsPrincipal

.net wif asp.net-mvc-4 visual-studio-2012

4
推荐指数
1
解决办法
886
查看次数