小编Nic*_*Goy的帖子

以编程方式将 MaterialButton 样式设置为 TextButton

我想以MaterialButton编程方式创建一个并TextButton在其上使用样式。

我尝试了以下操作,但生成的按钮具有背景颜色,而不是TextButton.

val newContext = ContextThemeWrapper(this, R.style.Widget_MaterialComponents_Button_TextButton)
val errorBtn = MaterialButton(newContext, null, R.style.Widget_MaterialComponents_Button_TextButton)
Run Code Online (Sandbox Code Playgroud)

我尝试了很多变体(不使用 3 参数构造函数或不使用上下文包装器)。

我发现了这个问题:Apply Style to MaterialButtonprogrammatically

但答案并不令人满意,因为设置背景色调不会产生良好的效果(按钮有阴影)。

android kotlin material-design

7
推荐指数
1
解决办法
2316
查看次数

如何告诉 SSH 在 PAM 之后而不是在重新映射用户之前设置 uid

我正在研究由 PAM 模块和 NSS 模块组成的半径身份验证解决方案。

流程是这样的:

  • 用户ben登录(通过login命令)
  • 用户输入用户名: ben
  • 使用该用户名查询我的 NSS 模块并返回一个默认的非特权用户radius,行为与libnss-ato相同
  • 用户输入密码
  • 我的 PAM 模块被调用并将查询 Radius 服务器,如果 auth 被接受,PAM 模块将使用 Radius 供应商属性来选择一个本地用户名来映射 Radius 用户,这个映射被写入数据库,例如ben->admin
  • 现在,我的 NSS 模块将读取该数据库并返回 Radius 用户的正确本地用户名
  • 使用该login命令,用户以正确的映射用户登录admin

现在,我的问题如下。OpenSSH 服务器会在 PAM 之前读取 NSS。

这意味着流程是这样的:

  • 用户benssh 进入
  • SSH查询NSS并映射ben到默认账号radius
  • 用户将看到密码提示并输入密码
  • 我的 PAM 模块被调用并且映射ben->admin缓存
  • SSH 将产生一个会话,radius而不是admin因为它使用在调用 PAM 之前从 NSS 获得的值

现在这个错误只发生在第一次登录时,因为在第二次登录时 NSS 将缓存数据并在第一次调用时返回正确的用户。 …

linux ssh pam

6
推荐指数
1
解决办法
386
查看次数

标签 统计

android ×1

kotlin ×1

linux ×1

material-design ×1

pam ×1

ssh ×1