我正在为我的MVC5项目使用OWIN身份验证.这是我的SignInAsync
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
var AccountNo = "101";
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
identity.AddClaim(new Claim(ClaimTypes.UserData, AccountNo));
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent, RedirectUri="Account/Index"}, identity);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我添加AccountNo
到声明列表中.
现在,如何在我的应用程序中的某个时刻更新此声明?到目前为止,我有这个:
public string AccountNo
{
get
{
var CP = ClaimsPrincipal.Current.Identities.First();
var Account= CP.Claims.FirstOrDefault(p => p.Type == ClaimTypes.UserData);
return Account.Value;
}
set
{
var CP = ClaimsPrincipal.Current.Identities.First();
var AccountNo= CP.Claims.FirstOrDefault(p => p.Type == ClaimTypes.UserData).Value;
CP.RemoveClaim(new Claim(ClaimTypes.UserData,AccountNo));
CP.AddClaim(new Claim(ClaimTypes.UserData, value));
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试删除声明时,我得到以下异常:
声明' http://schemas.microsoft.com/ws/2008/06/identity/claims/userdata:101 …
假设我有以下标记:
<div class="container">
<div class="row">
<div class="col-md-12">
...
<div class="full-width-div">
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在如何使.full-width-div
拉伸到屏幕的整个宽度?因为目前它在容器内是有限的.
可以说我在ember控制器中有这样的数组,
selectedUsers: ["Popeye", "Sulley", "Gru"];
Run Code Online (Sandbox Code Playgroud)
现在,我如何使用把手将每个用户呈现在无序列表中?我可以使用{{#Each}}
帮手吗?
我正在构建一个用户可以使用Facebook登录的应用程序.
我已经创建了如下的哈希键:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.app.package",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash", "KeyHash:"+ Base64.encodeToString(md.digest(),
Base64.DEFAULT));
Toast.makeText(getApplicationContext(), Base64.encodeToString(md.digest(),
Base64.DEFAULT), Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
在调试模式下,一切运行良好.
当我导出项目以供发布时,它会出现以下错误:
"Invalid key hash. The key hash ****************** does not match any stored key hashes"
Run Code Online (Sandbox Code Playgroud)
我粘贴了Facebook Developer仪表板中打印的密钥,但应用程序仍然给我错误.
我的行为的完整包是" com.app.package.views
",我试图在仪表板中使用此包(作为Google Play包名称),但没有任何改变.
我该如何解决?如何生成正确的发布密钥哈希?
我有以下型号:
public enum Status
{
[Display(Name = "Awaiting Approval")]
AwaitingApproval,
Rejected,
Accepted,
}
Run Code Online (Sandbox Code Playgroud)
我在这样的模型中使用这个枚举:
public class Docs
{
[Key]
public int Id { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public Status Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在这很好用; 序列化程序返回枚举的等效字符串.我的问题是如何告诉JSON.NET采用Display
属性而不是string
?
我想使用RecyclerView显示记录列表.
但是当我运行应用程序时,它只显示一条记录.
我验证了我的代码,一切似乎都很好.
适配器代码:
public class AdapterData extends RecyclerView.Adapter<AdapterData.DummyHolder> {
private LayoutInflater layoutInflater;
private ArrayList<String> mItems = new ArrayList<>();
public Context ThisContext;
public AdapterData(Context context)
{
layoutInflater = LayoutInflater.from(context);
mItems = generateValues();
ThisContext = context;
}
public static ArrayList<String> generateValues(){
ArrayList<String> Dummy = new ArrayList<>();
for(int i=1; i<100; i++)
{
Dummy.add("Item"+i);
Log.d("MTS", String.valueOf(i));
}
return Dummy;
}
@Override
public DummyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= layoutInflater.inflate(R.layout.row_layout,parent,false);
DummyHolder holder=new DummyHolder(view);
return holder;
}
@Override
public void onBindViewHolder(DummyHolder holder, int …
Run Code Online (Sandbox Code Playgroud) 所以我一直试图在fragment
里面使用谷歌地图精简版scrollView
,我无法显示地图.scrollView
通过它自己移除并离开片段后,现在是时候可以看到地图了.我只是想了解为什么会这样,以及是否有可能让我的scrollView结束时显示这个片段.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.joe.goout.EventDetails">
<ImageView
android:src="@mipmap/park1"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:id="@+id/imageView"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/imageView"
android:id="@+id/scrollView"
android:fillViewport="false">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</ScrollView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 在我的angularjs应用程序中,我有两个输入字段type="text"
,请在此处查看plunkr.
问题是货币格式不可能input type="number"
.
因此,当焦点转移到移动设备时,可以为移动设备调出数字keyborad input type="text"
吗?
请帮忙
这是一个搜索功能,可以返回每个成员注册的最近年份.
我让它使用DB :: raw()调用.但无法让它与查询构建器一起使用.
工作守则:
$query = DB::table('membership as m');
$query->join(
DB::raw(
'(SELECT my.*
FROM membership_years my
INNER JOIN (
SELECT member_id,MAX(membership_year) AS max_my
FROM membership_years
GROUP BY member_id
) my2
ON my.member_id = my2.member_id
AND my.membership_year = my2.max_my
) my'
)
,'m.id','=','my.member_id');
Run Code Online (Sandbox Code Playgroud)
我对查询构建器代码的尝试:
$query = DB::table('membership as m');
$query->join('membership_years as my',
function($j1){
$j1->join('membership_years as my2',
function($j2){
$j2->where('my.membership_year','=','MAX(my2.membership_year)')
->on('my.member_id','=','my2.member_id');
}
)->on('m.id','=','my.member_id');
}
);
Run Code Online (Sandbox Code Playgroud)
产生的错误是:
调用未定义的方法Illuminate\Database\Query\JoinClause :: join()
我不确定这是否因为$j2
无法再访问join方法了?
原始MySQL查询:
SELECT my.membership_year,m.*
FROM membership AS m
INNER JOIN
( …
Run Code Online (Sandbox Code Playgroud) 我正在使用SimpleXmlConverterFactory
Retrofit2。以下是我试图解析的示例响应:
<entries timestamp="1513178530.8394">
<entry id="2" date="20170104">
<fruits>
<fruit type="apple" count="16"/>
<fruit type="banana" count="12"/>
<fruit type="cerry" count="5"/>
<fruit type="lemon" count="2"/>
<fruit type="orange" count="2"/>
<fruit type="pear" count="0"/>
<fruit type="pineapple" count="2"/>
</fruits>
</entry>
<entry id="21" date="20170306">
<fruits>
<fruit type="pear" count="1"/>
<fruit type="orange" count="3"/>
<fruit type="banana" count="1"/>
<fruit type="cerry" count="1"/>
<fruit type="apple" count="2"/>
</fruits>
</entry>
</entries>
Run Code Online (Sandbox Code Playgroud)
现在我使用以下类来解析:
@Root(name = "entries")
public class Entries {
@Attribute(name = "timestamp")
private String timestamp;
@ElementList(name = "entry")
private List<EntryLog> entry;
}
@Root(name = "entry")
class Entry …
Run Code Online (Sandbox Code Playgroud)